#include "stdafx.h"
#include "TaskQueueSync.h"

Task * TaskQueueSync::get_task()
{
	sem_empty_.consume();
	mutex_.lock();
	Task *task = TaskQueue::get_task();
	mutex_.release();

	return task;
}

bool TaskQueueSync::set_task(Task *task)
{
	mutex_.lock();
	bool ret = TaskQueue::set_task(task);
	mutex_.release();
	sem_empty_.produce();
	return ret;
}